package halvesAreAlike;

/**
 * ***************************判断字符串的两半是否相似***************************
 *
 *  给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半，前一半为 a ，后一半为 b 。
 *  两个字符串 相似 的前提是它们都含有相同数目的元音（'a'，'e'，'i'，'o'，'u'，'A'，'E'，'I'，'O'，'U'）。注意，s 可能同时含有大写和小写字母。
 *  如果 a 和 b 相似，返回 true ；否则，返回 false 。
 *
 *
 * 示例 1：
 * 输入：s = "book"
 * 输出：true
 * 解释：a = "bo" 且 b = "ok" 。a 中有 1 个元音，b 也有 1 个元音。所以，a 和 b 相似。
 *
 * 示例 2：
 * 输入：s = "textbook"
 * 输出：false
 * 解释：a = "text" 且 b = "book" 。a 中有 1 个元音，b 中有 2 个元音。因此，a 和 b 不相似。
 * 注意，元音 o 在 b 中出现两次，记为 2 个。
 *
 *
 * 提示：
 * 2 <= s.length <= 1000
 * s.length 是偶数
 * s 由 大写和小写 字母组成
 */
public class Solution {
    public static boolean halvesAreAlike(String s) {

        // 左指针
        int l = s.length() / 2 - 1;
        // 右指针
        int r = l+1;
        int rNum = 0;
        int lNum = 0;
        for (int i = l; i >= 0; i--){
            if (exist(s.charAt(i))) {
                lNum++;
            }
        }
        for (int i = r; i < s.length(); i++){
            if (exist(s.charAt(i))) {
                rNum++;
            }
        }
        // System.out.println("rNum:" + rNum + ",lNum:" + lNum);
        return rNum == lNum;
    }

    /**
     * 描述 判断是否存在该字符
     * @author lyd
     * @param letter 比较字符
     * @return 是否存在
     * @created 2022/11/11 10:02
     */
    private static boolean exist(char letter){
        char[] letters = {'a','e','i','o','u','A','E','I','O','U'};
        for (int i = 0; i < letters.length;i++) {
            if (letter == letters[i]) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        System.out.println(halvesAreAlike("ay"));
    }
}
